package entities;

import java.util.Date;
import java.util.List;

import javax.persistence.*;

@Entity
@Table(name="cotizacion")
public class CotizacionEntity 
{
	private int id;
	private int numero;
	private Date fechaValidez;
	private ClienteEntity cliente;
	private List<ItemCotizacionEntity> items;
	private Date fechaRemisionAlCliente;
	private String estadoCotizacion;
	private SolicitudCotizacionEntity solCot;
	private CondicionVentaEntity condicionDeVenta;
	private PedidoVentaEntity pedidoVenta;
	
	public CotizacionEntity() 
	{
		// TODO Auto-generated constructor stub
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	public int getId() 
	{
		return id;
	}

	public void setId(int id) 
	{
		this.id = id;
	}

	public int getNumero() 
	{
		return numero;
	}

	public void setNumero(int numero) 
	{
		this.numero = numero;
	}

	@ManyToOne
    @JoinColumn(name="cliente_id")
	public ClienteEntity getCliente() 
	{
		return cliente;
	}

	public void setCliente(ClienteEntity cliente) 
	{
		this.cliente = cliente;
	}

	@OneToMany
	@PrimaryKeyJoinColumn
	public List<ItemCotizacionEntity> getItems() 
	{
		return items;
	}

	public void setItems(List<ItemCotizacionEntity> items) 
	{
		this.items = items;
	}

	public String getEstadoCotizacion() 
	{
		return estadoCotizacion;
	}

	public void setEstadoCotizacion(String estadoCotizacion) 
	{
		this.estadoCotizacion = estadoCotizacion;
	}
	
	@OneToOne(cascade=CascadeType.ALL)
	@PrimaryKeyJoinColumn
	public SolicitudCotizacionEntity getSolCot() 
	{
		return solCot;
	}

	public void setSolCot(SolicitudCotizacionEntity solCot) 
	{
		this.solCot = solCot;
	}

	
	@OneToOne
	@PrimaryKeyJoinColumn
	public PedidoVentaEntity getPedidoVenta()
	{
		return pedidoVenta;
	}
	
	public void setPedidoVenta( PedidoVentaEntity pedidoVenta )
	{
		this.pedidoVenta = pedidoVenta;
	}

	public Date getFechaValidez() {
		return fechaValidez;
	}

	public void setFechaValidez(Date fechaExpiracion) {
		this.fechaValidez = fechaExpiracion;
	}

	public Date getFechaRemisionAlCliente() {
		return fechaRemisionAlCliente;
	}

	public void setFechaRemisionAlCliente(Date fechaRecepcion) {
		this.fechaRemisionAlCliente = fechaRecepcion;
	}

	@OneToOne(cascade=CascadeType.ALL)
	@PrimaryKeyJoinColumn
	public CondicionVentaEntity getCondicionDeVenta() {
		return condicionDeVenta;
	}

	public void setCondicionDeVenta(CondicionVentaEntity condicionDeVenta) {
		this.condicionDeVenta = condicionDeVenta;
	}

}
